Como utilizar Snapper para crear snapshots del sistema de archivos.
NOTA: Para poder usar Snapper necesitamos que nuestro sistema de archivos sea btrfs.
Snapper por defecto (en OpenSUSE) no hace snapshots de la carpeta home, si queremos podemos añadirla en la configuración, pero no suele ser recomendado para evitar snapshots muy pesados, ademas de que snapper está pensado para restablecer configuraciones o instalaciones, si restauramos un snapshot antiguo, y tenemos la carpeta home configurada, también se restaurará nuestros archivos personales (pudiendo perder archivos).
En OpenSUSE ya viene todo listo para usar snapper, en otras distribuciones se puede instalar pero no tienen tanta integración por defecto como OpenSUSE, ya que snapper fue creado por OpenSUSE.
Si queremos podemos usar snapper en otras distros.
La manera en la que funciona snapper es la siguiente, cada vez que usamos zypper o yast para instalar nuevos paquetes, snapper crea dos nuevos snapshots el pre antes de hacer la instalación y el post justo despues de terminar la instalación, de esta manera si al instalar un paquete tenemos algún problema podemos deshacer justo los cambios que ha probocado dicha instalación y nada mas.
De todos modos si queremos tambien podemos hacer snapshots individuales (snapshot single) de manera manual en cualquier momento, sin necesidad de que sea en el momento de hacer uso de zypper o yast.
# snapper list
El listado nos muestra todos los snapshots y que pre/post están enlazados.
# snapper status 396..397
# snapper undochange 396..397
# snapper restore 396
NOTA: en OpenSUSE podemos usar el rollback una vez cargado un snapshot como se indica en la sección mas abajo.
# snapper create --description "Mi bonito snapshot"
PRE_ID=$(sudo snapper create --type pre --print-number --description "Antes de mi cambio manual")
Aquí haríamos los cambios que necesitemos en el sistema (instalar paquetes, cambiar configuraciones...etc)
# snapper create --type post --pre-number $PRE_ID --description "Después de mi cambio manual"
OpenSUSE tiene una serie de caracteristicas por defecto al usar snapper (en otras distros se pueden conseguir estas caracteristicas instalando plugins a mayores de snapper).
La primera es la creación de snapshots pre/post de manera automática a la hora de usar zypper o yast para instalar paquetes.
La segunda caracteristica es que permite cargar snapshots de manera temporal desde GRUB, a la hora de arrancar el sistema operativo solo tenemos que seleccionar la opción Start bootloader from a read-only snapshot.
Y se cargará el sistema con el snapshot seleccionado, una vez arrancado el sistema y si vemos que todo está como queremos podemos hacer ese snapshot permanente usando el siguiente comando:
# snapper rollback
Snapper | Backups | OpenSUSE | YaST | zypper